
#ifndef __LIBERTY_ENGINE_XML_PARSER_H__
#define __LIBERTY_ENGINE_XML_PARSER_H__

#include <Liberty3D/Liberty3D.h>
#include <Liberty3D/Engine/XML/INode.h>

#include <streambuf>
#include <ios>

namespace Liberty { namespace Engine { namespace Xml {

    class Parser {
    public:
        static std::shared_ptr<INode> parse(const std::string& fileName);
        static std::shared_ptr<INode> parse(std::ios&);
        static std::shared_ptr<INode> parse(std::streambuf*);
        
        static std::shared_ptr<INode> parseString(const std::string& xmlData);
    };
    
    bool containsWhitespaces(const std::string& data);
}}}

#endif
